#include "choixpg.h"
#include "ui_choixpg.h"

ChoixPg::ChoixPg(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ChoixPg)
{
    ui->setupUi(this);

    // On récupère la base microtmp pour la liste des proms
    db = QSqlDatabase::database("microtmp");


    // On initialise le model pour la liste des proms
    model = new PromsModel(this);
    model->setQuery("SELECT proms FROM proms ORDER BY proms",db);
    ui->tableView->setModel(model);
    ui->tableView->resizeColumnsToContents();

}

ChoixPg::~ChoixPg()
{
    delete ui;
    delete model;
}

void ChoixPg::reset()
{
    // On remet à zéro la fams et on redonne le focus pour en entrer une nouvelle
    ui->lineEdit->setText("");
    ui->lineEdit->setFocus();
    ui->lineEdit->setCursorPosition(0);
}

void ChoixPg::keyPressEvent(QKeyEvent *event)
{
    //On récupère la touche
    int key = event->key() - Qt::Key_F1;

    //Si c'est entre F1 et F12
    if(key >= 0 && key < 12 && key < model->rowCount()){
        // On envoie un signal pour bucquer le pg sélectionné
        event->accept();
        emit bucquer(ui->lineEdit->text().toInt(),model->index(key,0).data().toString());
    }

    // Si c'est Echap, on envoie le signal de fin de bucquage
    if(event->key() == Qt::Key_Escape){        
        event->accept();
        emit finBucquage();
    }

    // Si c'est entré, on vérifie qu'il n'y a pas de choix dans les proms et on peut bucquer
    if((event->key() == Qt::Key_Return ||event->key() == Qt::Key_Enter) && model->rowCount() == 1){
        event->accept();
        emit bucquer(ui->lineEdit->text().toInt(),model->index(0,0).data().toString());
    }
}

